filechooser: Prevent over-eager completions
authorMatthias Clasen <mclasen@redhat.com>
Sun, 2 Aug 2020 23:18:11 +0000 (19:18 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 2 Aug 2020 23:18:11 +0000 (19:18 -0400)
We don't want the completions to pop up after we call
gtk_file_chooser_set_current_name(). This used to be
handled by gtk_entry_set_text() blocking the completion
signal handler. We don't have that anymore, so block
popup completion around the call to gtk_editable_set_text()
instead.

Fixes: #2995
gtk/gtkfilechooserwidget.c

index 3509cf7cf781aa62a7f65f4ebc17d7686b7865c0..2eae39493c24c8148903c9bbf76acc079720ffc8 100644 (file)
@@ -5088,11 +5088,18 @@ gtk_file_chooser_widget_set_current_name (GtkFileChooser *chooser,
                                           const char     *name)
 {
   GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (chooser);
+  GtkEntryCompletion *completion;
 
   g_return_if_fail (impl->action == GTK_FILE_CHOOSER_ACTION_SAVE);
 
   pending_select_files_free (impl);
+
+  completion = gtk_entry_get_completion (GTK_ENTRY (impl->location_entry));
+  gtk_entry_completion_set_popup_completion (completion, FALSE);
+
   gtk_editable_set_text (GTK_EDITABLE (impl->location_entry), name);
+
+  gtk_entry_completion_set_popup_completion (completion, TRUE);
 }
 
 static char *